package com.jandar.logging;

/**
 * 日志接口。
 * 
 * @author pqj
 * @version 2009-7-9
 */
public interface Logger {

	/** 输出信息前缀 */
	String INFO_MSG = "info";

	/** 警告信息前缀 */
	String WARING_MSG = "waring";

	/** 错误信息前缀 */
	String ERROR_MSG = "error";

	/** 调试信息前缀 */
	String DEBUG_MSG = "debug";

	/** 日志输出方式 */
	String LOGGER_TYPE_KEY = "logger.type";

	/** 控制台方式 */
	String CONSOLE_LOGGER = "console";

	/** 文件方式 */
	String FILE_LOGGER = "file";

	/** 文件名路径 */
	String FILE_PATH_KEY = "logger.file.path";

	/** 文件编码 */
	String FILE_ENCODING_KEY = "logger.file.encoding";

	/** 输出流是否自动刷新 */
	String AUTOFLUSH_KEY = "logger.autoflush";

	/** 是否支持调试输出 */
	String DEBUG_KEY = "logger.debug";
	
	/** 是否是多文件记录 */
	String FILE_MANYFILES_KEY = "logger.file.manyFiles";
	
	/** 文件大小 */
	String FILE_SIZE_KEY = "logger.file.size";
	
	/** 日志文件名时间格式 */
	String FILE_DATE_PATTERN_KEY = "logger.file.date";
	
	/** 日志文件名称格式 */
	String FILE_NAME_PATTERN_KEY = "logger.file.name";
	
	/** 扩展名 */
	String FILE_EXPANDNAME_KEY = "logger.file.expandName";

	/**
	 * 输出信息。
	 * 
	 * @param str 文本
	 */
	void info(String str);

	/**
	 * 输出信息。
	 * 
	 * @param ex 异常
	 */
	void info(Throwable ex);

	/**
	 * 输出警告信息。
	 * 
	 * @param str 文本
	 */
	void waring(String str);

	/**
	 * 输出警告信息。
	 * 
	 * @param ex 异常
	 */
	void waring(Throwable ex);

	/**
	 * 输出错误信息。
	 * 
	 * @param str 文本
	 */
	void error(String str);

	/**
	 * 输出错误信息。
	 * 
	 * @param ex 异常
	 */
	void error(Throwable ex);

	/**
	 * 输出调试信息。
	 * 
	 * @param str 文本
	 */
	void debug(String str);

	/**
	 * 输出调试信息。
	 * 
	 * @param ex 异常
	 */
	void debug(Throwable ex);
}
